package com.t.bricks.bussiness.db.mapper.sequence;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface SequenceMapper {

	/**
	 * 创建序列表
	 * @Param dbName 所在库名
	 * @return 返回影响值
	 */
	int createTable(@Param("dbName") String dbName);

	/**
	 * 判断序列表是否存在
	 * @Param dbName 所在库名
	 * @return 存在则返回1
	 */
	int checkTable(@Param("dbName") String dbName);

	/**
	 * 取最后的序列值
	 * @Param dbName 所在库名
	 * @param iValue
	 * @return 返回值
	 */
	int findLastId(
		@Param("dbName") String dbName,
		@Param("sName") String sName
	);

	/**
	 * 更新到新iValue值
	 * @Param dbName 所在库名
	 * @param sName 序列名称
	 * @return 返回影响值
	 */
	int newValue(
		@Param("dbName") String dbName,
		@Param("sName") String sName
	);

	/**
	 * 更新到新的一批iValue值
	 * @Param dbName 所在库名
	 * @param sName 序列名称
	 * @param size 范围
	 * @return 返回影响值
	 */
	int newValues(
		@Param("dbName") String dbName,
		@Param("sName") String sName,
		@Param("size") int size
	);
	
	/**
	 * 添加表字段信息,并设置初始值
	 * @Param dbName 所在库名
	 * @param sName 序列名称
	 * @param iInitial 初始值
	 * @return 返回影响值
	 */
	int addSequence(
		@Param("dbName") String dbName,
		@Param("sName") String sName,
		@Param("iInitial") Integer iInitial
	);
	
	/**
	 * 重置
	 * @Param dbName 所在库名
	 * @param sName 序列名称
	 * @Param iInitial 初始值
	 * @return 返回影响值
	 */
	int reset(
		@Param("dbName") String dbName,
		@Param("sName") String sName,
		@Param("iInitial") Integer iInitial
	);
	
}
